package paq_negocio;

import com.sun.rowset.CachedRowSetImpl;
import paq_entidades.*;
import paq_sentencias.Ejecutarsql;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.Stateless;
import paq_clase_interfaz.interfaz_modulo;

@Stateless
public class neg_modulo implements interfaz_modulo {

    List l1 = null;
    enti_variables v = new enti_variables();
    CachedRowSetImpl crs = null;
    String msm = "";
    enti_modulo entidad = new enti_modulo();
    enti_programa_postgrado pro = new enti_programa_postgrado();
    Ejecutarsql ejec = new Ejecutarsql();

    @Override
    public void insertar(String nombre, Integer numerocred, String tipo, String pp_codigo) {
        entidad.setCreditos(numerocred);
        entidad.setNombre(nombre);
        entidad.setTipo(tipo);
        pro.setCodigo(pp_codigo);
        String sql = "insert into modulo (mod_codigo,mod_nombre,mod_numerocreditos,ti_codigo,pp_codigo) values(concat('modu',modul.NextVal),'" + entidad.getNombre() + "','" + entidad.getCreditos() + "','" + entidad.getTipo() + "','" + pro.getCodigo() + "')";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }

    @Override
    public void eliminar(String al_codigo) {
        entidad.setCodigo(al_codigo);
        String sql = "delete from  modulo where mod_codigo='" + entidad.getCodigo() + "'";

        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }

    @Override
    public void actualizar(String al_codigo, String nombre, Integer numerocred, String tipo, String pp_codigo) {
        entidad.setCodigo(al_codigo);
        entidad.setCreditos(numerocred);
        entidad.setNombre(nombre);
        entidad.setTipo(tipo);
        pro.setCodigo(pp_codigo);
        String sql = "update modulo set mod_nombre='" + entidad.getNombre() + "',mod_numerocreditos='" + entidad.getCreditos() + "',ti_codigo='" + entidad.getTipo() + "',pp_codigo='" + pro.codigo + "' where mod_codigo='" + entidad.getCodigo() + "'  ";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }

    @Override
    public CachedRowSetImpl getLista() {
        try {
            crs = (CachedRowSetImpl) ejec.rellena2("select * from modulo order by mod_codigo desc");
        } catch (Exception ex) {
            Logger.getLogger(neg_modulo.class.getName()).log(Level.SEVERE, null, ex);
        }
        return crs;
    }

    @Override
    public CachedRowSetImpl getListacombomodulo(String cod) {
        try {
            crs = (CachedRowSetImpl) ejec.rellena2("select (modu.MOD_NOMBRE || '_' ||modu.mod_numerocreditos ) AS mod_nombre,modu.mod_codigo from MODULO modu, PROGRAMA_POSTGRADO pro where pro.PP_CODIGO=modu.PP_CODIGO and pro.PP_CODIGO='" + cod + "'");
        } catch (Exception ex) {
            Logger.getLogger(neg_modulo.class.getName()).log(Level.SEVERE, null, ex);
        }
        return crs;
    }

    @Override
    public CachedRowSetImpl getLista_tabla(String cod) {
        try {
            crs = (CachedRowSetImpl) ejec.rellena2("select modu.MOD_CODIGO,modu.MOD_NOMBRE,ti.TI_DESCRIPCION,ti.TI_CODIGO,modu.MOD_NUMEROCREDITOS,pro.pp_codigo,pro.pp_nombre from coordinador_programa coor,MODULO modu, PROGRAMA_POSTGRADO pro,TIPO_INFORMACION ti where pro.PP_CODIGO=modu.PP_CODIGO and ti.TI_CODIGO=modu.TI_CODIGO and coor.PR_CEDULA=pro.PR_CEDULA and coor.Pr_cedula='"+cod+"' order by modu.MOD_NOMBRE");
        } catch (Exception ex) {
            Logger.getLogger(neg_modulo.class.getName()).log(Level.SEVERE, null, ex);
        }
        return crs;
    }

    @Override
    public CachedRowSetImpl getListacombomoduloporpromocion(String cod) {
        try {
            v.crs = (CachedRowSetImpl) ejec.rellena2("select modu.MOD_CODIGO,(modu.MOD_NOMBRE|| '__' ||modu.MOD_NUMEROCREDITOS) as mod_nombre from PROMOCION pr, PROGRAMA_POSTGRADO prog,MODULO modu where modu.PP_CODIGO=prog.PP_CODIGO and prog.PP_CODIGO=pr.PP_CODIGO and pr.PROM_CODIGO='" + cod + "' order by modu.MOD_NOMBRE");
        } catch (Exception ex) {
            Logger.getLogger(neg_modulo.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs;
    }

    @Override
    public String getmensajei() {
        String sdr = "";
        sdr = v.msm;
        return sdr;
    }

    @Override
    public CachedRowSetImpl lista_modulos_por_programa(String cod) {
         try {
            v.crs5 = (CachedRowSetImpl) ejec.rellena2("select modu.MOD_NOMBRE,modu.MOD_NUMEROCREDITOS,ti.TI_DESCRIPCION from PROGRAMA_POSTGRADO pg,MODULO modu,TIPO_INFORMACION ti where pg.PP_CODIGO=modu.PP_CODIGO and modu.TI_CODIGO=ti.TI_CODIGO and modu.MOD_CODIGO not in(select mod_codigo from asignatura) and modu.PP_CODIGO='"+cod+"'");
        } catch (Exception ex) {
            Logger.getLogger(neg_modulo.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs5;
    }

    @Override
    public CachedRowSetImpl lista_asignaturas_por_programa(String cod) {
         try {
            v.crs3 = (CachedRowSetImpl) ejec.rellena2("select asig.asig_nombre,asig.asig_numerocreditos from PROGRAMA_POSTGRADO pg,MODULO modu,ASIGNATURA asig where pg.PP_CODIGO=modu.PP_CODIGO and modu.MOD_CODIGO=asig.MOD_CODIGO and pg.PP_CODIGO='"+cod+"'");
        } catch (Exception ex) {
            Logger.getLogger(neg_modulo.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs3;
    }
}
